{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "9c99f9ae",
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import time\n",
    "\n",
    "import torch\n",
    "import json\n",
    "from torch import nn\n",
    "from torchvision import transforms, models, datasets\n",
    "from PIL import Image\n",
    "from torchvision import transforms\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "85a0d56d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "018xiaoyaobei\n"
     ]
    }
   ],
   "source": [
    "name_dic = {'0': 0, '001wanpan': 1, '002qiangzhuangnie': 2, '003qianbijing': 3, '004pingnie': 4, '005zhiliaowan': 5,\n",
    "            '006kuiyinqi': 6, '007tanzhen': 7, '008kuoyinbang': 8, '009huiyinxiaoduqian': 9, '010shuchiqian': 10, '011guashi': 11,\n",
    "            '012huojianqian': 12, '013guchuanzhen': 13, '014dabujinqian': 14, '015xiaobujinqian': 15, '016hezi': 16, '017luanyuanqian': 17,\n",
    "            '018xiaoyaobei': 18, '019wanqian': 19, '020yahenban': 20, '021jiandao': 21, '022chizhenqi': 22, '023chuancizhen': 23}\n",
    "for i in name_dic:\n",
    "    if name_dic[i] == 18:\n",
    "        print(i)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "fccaacc2",
   "metadata": {},
   "outputs": [],
   "source": [
    "device = torch.device('cuda')  # 加载到gpu测试\n",
    "\n",
    "# 要注意此处一定要和前面训练时的一样\n",
    "transform = transforms.Compose([\n",
    "#     transforms.Resize(256),\n",
    "    transforms.CenterCrop(224),\n",
    "    transforms.ToTensor(),  # 除以255\n",
    "    # 迁移学习，用别人的均值和标准\n",
    "    transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])\n",
    "])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "3ae123f9",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 是否继续训练模型的参数\n",
    "def set_parameter_requires_grad(model, feature_extracting):\n",
    "    if feature_extracting:\n",
    "        for param in model.parameters():\n",
    "            param.requires_grad = False"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "8c00a9ea",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 这里是为了需要获得网络结构所以从前面加载过来定义一遍\n",
    "def initialize_model(model_name, num_classes, feature_extract, use_pretrained):\n",
    "    # 选择合适的模型，不同模型的初始化方法稍微有点区别\n",
    "    model_ft = None\n",
    "    input_size = 0\n",
    "\n",
    "    if model_name == \"resnet\":\n",
    "        \"\"\"\n",
    "        Resnet152 #50\n",
    "        \"\"\"\n",
    "        model_ft = models.resnet50(pretrained=use_pretrained)  # pretrained 表示是否需要下载  0630 改为 False\n",
    "        set_parameter_requires_grad(model_ft, feature_extract)\n",
    "        num_ftrs = model_ft.fc.in_features\n",
    "        model_ft.fc = nn.Sequential(nn.Linear(num_ftrs, num_classes),\n",
    "                                    nn.Softmax(dim=1))  # 原来为Log\n",
    "        input_size = 224\n",
    "    else:\n",
    "        print(\"Invalid model name, exiting...\")\n",
    "        exit()\n",
    "\n",
    "    return model_ft, input_size\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "bb576ff2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<torch.autograd.grad_mode.no_grad at 0x7ff18b498c10>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_ft, input_size = initialize_model(\"resnet\", 24, feature_extract=True, use_pretrained=False)  # 这里我们已经定义好了模型结构了\n",
    "##################################################################################\n",
    "net = torch.load('./checkpoints50/checkpoints_resnet50_0812_5.0_01_98.2%.pth')\n",
    "model_ft.load_state_dict(net['state_dict'])\n",
    "net = model_ft.to(device)\n",
    "net.eval()\n",
    "torch.no_grad()  # 测试不更新梯度\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "04bfd002",
   "metadata": {},
   "outputs": [],
   "source": [
    "def predict(img_path):\n",
    "\n",
    "    img = Image.open(img_path)   # 读取的是.png 图片 是32位深度的，一般我们读取的是.jpg 24位深度的\n",
    "    img = transform(img).unsqueeze(0)  # 转为输入神经网络的格式，归一化，减均值除方差等等\n",
    "    img_ = img.to(device)\n",
    "    outputs = net(img_)\n",
    "\n",
    "    _, predicted = torch.max(outputs.data, 1)\n",
    "#     print(predicted[0])\n",
    "\n",
    "    believeLevel = torch.max(outputs.data);\n",
    "#     print(believeLevel.item())\n",
    "    if believeLevel.item()>=0.70:\n",
    "        print(\"内部排序为，即种类为：\", predicted[0].item(),'  相应概率为：',believeLevel.item())\n",
    "\n",
    "#         data_dir = 'lab_data/'\n",
    "#         fuc = datasets.ImageFolder(os.path.join(data_dir, 'train'), transforms).class_to_idx\n",
    "#     #     print(fuc)\n",
    "#         for key, value in fuc.items():\n",
    "#             if value == predicted[0].item():\n",
    "#                 print(\"预测物品的种类为:\", key)\n",
    "#                 break\n",
    "    else:\n",
    "        print('###################  请重新摆放物品  #####################')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "aa8711bc",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "预测第 1 张图片82.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9998446702957153\n",
      "预测第 2 张图片26.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9926921725273132\n",
      "预测第 3 张图片117.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 1.0\n",
      "预测第 4 张图片81.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 1.0\n",
      "预测第 5 张图片141.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9978233575820923\n",
      "预测第 6 张图片76.jpeg\n",
      "内部排序为，即种类为： 19   相应概率为： 0.986242949962616\n",
      "预测第 7 张图片39.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9862523674964905\n",
      "预测第 8 张图片51.jpeg\n",
      "###################  请重新摆放物品  #####################\n",
      "预测第 9 张图片71.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.8827154040336609\n",
      "预测第 10 张图片55.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999853372573853\n",
      "预测第 11 张图片127.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9998977184295654\n",
      "预测第 12 张图片34.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9994828701019287\n",
      "预测第 13 张图片78.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 1.0\n",
      "预测第 14 张图片73.jpeg\n",
      "内部排序为，即种类为： 19   相应概率为： 0.9999816417694092\n",
      "预测第 15 张图片68.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999998807907104\n",
      "预测第 16 张图片31.jpeg\n",
      "内部排序为，即种类为： 15   相应概率为： 0.9952067732810974\n",
      "预测第 17 张图片124.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999996423721313\n",
      "预测第 18 张图片43.jpeg\n",
      "内部排序为，即种类为： 19   相应概率为： 0.9999650716781616\n",
      "预测第 19 张图片125.jpeg\n",
      "###################  请重新摆放物品  #####################\n",
      "预测第 20 张图片15.jpeg\n",
      "内部排序为，即种类为： 21   相应概率为： 0.7606180906295776\n",
      "预测第 21 张图片85.jpeg\n",
      "内部排序为，即种类为： 10   相应概率为： 0.9999960660934448\n",
      "预测第 22 张图片56.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9116749167442322\n",
      "预测第 23 张图片41.jpeg\n",
      "内部排序为，即种类为： 15   相应概率为： 0.7943994998931885\n",
      "预测第 24 张图片110.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.7059805393218994\n",
      "预测第 25 张图片32.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9948546886444092\n",
      "预测第 26 张图片47.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999885559082031\n",
      "预测第 27 张图片75.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9981940388679504\n",
      "预测第 28 张图片29.jpeg\n",
      "内部排序为，即种类为： 10   相应概率为： 0.9664879441261292\n",
      "预测第 29 张图片135.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 1.0\n",
      "预测第 30 张图片40.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999961853027344\n",
      "预测第 31 张图片42.jpeg\n",
      "内部排序为，即种类为： 19   相应概率为： 0.9746907949447632\n",
      "预测第 32 张图片131.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999974966049194\n",
      "预测第 33 张图片74.jpeg\n",
      "内部排序为，即种类为： 19   相应概率为： 0.9998843669891357\n",
      "预测第 34 张图片137.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9998528957366943\n",
      "预测第 35 张图片58.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999061822891235\n",
      "预测第 36 张图片143.jpeg\n",
      "内部排序为，即种类为： 10   相应概率为： 0.9980535507202148\n",
      "预测第 37 张图片145.jpeg\n",
      "###################  请重新摆放物品  #####################\n",
      "预测第 38 张图片4.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 1.0\n",
      "预测第 39 张图片64.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999992847442627\n",
      "预测第 40 张图片38.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999687671661377\n",
      "预测第 41 张图片1.jpeg\n",
      "内部排序为，即种类为： 19   相应概率为： 0.9999834299087524\n",
      "预测第 42 张图片134.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.8965153694152832\n",
      "预测第 43 张图片45.jpeg\n",
      "内部排序为，即种类为： 15   相应概率为： 0.9955054521560669\n",
      "预测第 44 张图片126.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999979734420776\n",
      "预测第 45 张图片115.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9977655410766602\n",
      "预测第 46 张图片10.jpeg\n",
      "内部排序为，即种类为： 19   相应概率为： 0.9527310132980347\n",
      "预测第 47 张图片120.jpeg\n",
      "###################  请重新摆放物品  #####################\n",
      "预测第 48 张图片20.jpeg\n",
      "内部排序为，即种类为： 19   相应概率为： 0.997809112071991\n",
      "预测第 49 张图片52.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.999985933303833\n",
      "预测第 50 张图片87.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 1.0\n",
      "预测第 51 张图片50.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.8393406271934509\n",
      "预测第 52 张图片132.jpeg\n",
      "###################  请重新摆放物品  #####################\n",
      "预测第 53 张图片89.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.999866247177124\n",
      "预测第 54 张图片77.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999970197677612\n",
      "预测第 55 张图片44.jpeg\n",
      "内部排序为，即种类为： 10   相应概率为： 0.8651947379112244\n",
      "预测第 56 张图片13.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9840465188026428\n",
      "预测第 57 张图片98.jpeg\n",
      "内部排序为，即种类为： 19   相应概率为： 0.7063562273979187\n",
      "预测第 58 张图片21.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999912977218628\n",
      "预测第 59 张图片23.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9044805765151978\n",
      "预测第 60 张图片107.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9946596026420593\n",
      "预测第 61 张图片88.jpeg\n",
      "内部排序为，即种类为： 19   相应概率为： 0.9992637038230896\n",
      "预测第 62 张图片146.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 1.0\n",
      "预测第 63 张图片79.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9992237091064453\n",
      "预测第 64 张图片119.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9997774958610535\n",
      "预测第 65 张图片128.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999908208847046\n",
      "预测第 66 张图片123.jpeg\n",
      "内部排序为，即种类为： 10   相应概率为： 0.8805997967720032\n",
      "预测第 67 张图片138.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.999998927116394\n",
      "预测第 68 张图片57.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 1.0\n",
      "预测第 69 张图片80.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 1.0\n",
      "预测第 70 张图片37.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999463558197021\n",
      "预测第 71 张图片108.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9998847246170044\n",
      "预测第 72 张图片19.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9603719711303711\n",
      "预测第 73 张图片90.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9982267022132874\n",
      "预测第 74 张图片114.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9987761378288269\n",
      "预测第 75 张图片105.jpeg\n",
      "内部排序为，即种类为： 10   相应概率为： 0.9980085492134094\n",
      "预测第 76 张图片94.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999994039535522\n",
      "预测第 77 张图片86.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 1.0\n",
      "预测第 78 张图片54.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 1.0\n",
      "预测第 79 张图片103.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9390446543693542\n",
      "预测第 80 张图片69.jpeg\n",
      "###################  请重新摆放物品  #####################\n",
      "预测第 81 张图片93.jpeg\n",
      "内部排序为，即种类为： 19   相应概率为： 0.9999996423721313\n",
      "预测第 82 张图片111.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9997708201408386\n",
      "预测第 83 张图片65.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 1.0\n",
      "预测第 84 张图片92.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 1.0\n",
      "预测第 85 张图片129.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999960660934448\n",
      "预测第 86 张图片136.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9995638728141785\n",
      "预测第 87 张图片112.jpeg\n",
      "内部排序为，即种类为： 10   相应概率为： 0.9507335424423218\n",
      "预测第 88 张图片59.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.8487277626991272\n",
      "预测第 89 张图片133.jpeg\n",
      "内部排序为，即种类为： 19   相应概率为： 0.9963561296463013\n",
      "预测第 90 张图片113.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.999745786190033\n",
      "预测第 91 张图片118.jpeg\n",
      "内部排序为，即种类为： 10   相应概率为： 0.9905959367752075\n",
      "预测第 92 张图片27.jpeg\n",
      "内部排序为，即种类为： 19   相应概率为： 0.9904664754867554\n",
      "预测第 93 张图片2.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9980194568634033\n",
      "预测第 94 张图片97.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9557514190673828\n",
      "预测第 95 张图片147.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9984238147735596\n",
      "预测第 96 张图片72.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 1.0\n",
      "预测第 97 张图片25.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999738931655884\n",
      "预测第 98 张图片100.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.7053079605102539\n",
      "预测第 99 张图片102.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999996423721313\n",
      "预测第 100 张图片95.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9875916242599487\n",
      "预测第 101 张图片142.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 1.0\n",
      "预测第 102 张图片144.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9992721676826477\n",
      "预测第 103 张图片70.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9964569211006165\n",
      "预测第 104 张图片106.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9996929168701172\n",
      "预测第 105 张图片48.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 1.0\n",
      "预测第 106 张图片35.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9495223164558411\n",
      "预测第 107 张图片66.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999077320098877\n",
      "预测第 108 张图片18.jpeg\n",
      "内部排序为，即种类为： 19   相应概率为： 0.9999555349349976\n",
      "预测第 109 张图片9.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9998948574066162\n",
      "预测第 110 张图片49.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9944000840187073\n",
      "预测第 111 张图片122.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.977542519569397\n",
      "预测第 112 张图片53.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999871253967285\n",
      "预测第 113 张图片3.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999955892562866\n",
      "预测第 114 张图片91.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9368531107902527\n",
      "预测第 115 张图片28.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 1.0\n",
      "预测第 116 张图片84.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999995231628418\n",
      "预测第 117 张图片121.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999998807907104\n",
      "预测第 118 张图片63.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 1.0\n",
      "预测第 119 张图片139.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999998807907104\n",
      "预测第 120 张图片24.jpeg\n",
      "内部排序为，即种类为： 19   相应概率为： 0.999247670173645\n",
      "预测第 121 张图片8.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999927282333374\n",
      "预测第 122 张图片83.jpeg\n",
      "内部排序为，即种类为： 19   相应概率为： 0.767778754234314\n",
      "预测第 123 张图片61.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999243021011353\n",
      "预测第 124 张图片6.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.99937504529953\n",
      "预测第 125 张图片36.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9978623986244202\n",
      "预测第 126 张图片30.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999992847442627\n",
      "预测第 127 张图片109.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.7275741696357727\n",
      "预测第 128 张图片14.jpeg\n",
      "内部排序为，即种类为： 15   相应概率为： 0.999396562576294\n",
      "预测第 129 张图片96.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9998519420623779\n",
      "预测第 130 张图片17.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9544781446456909\n",
      "预测第 131 张图片12.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9869187474250793\n",
      "预测第 132 张图片16.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.7714276909828186\n",
      "预测第 133 张图片67.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 1.0\n",
      "预测第 134 张图片5.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999970197677612\n",
      "预测第 135 张图片33.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9712054133415222\n",
      "预测第 136 张图片99.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999998807907104\n",
      "预测第 137 张图片62.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999972581863403\n",
      "预测第 138 张图片11.jpeg\n",
      "###################  请重新摆放物品  #####################\n",
      "预测第 139 张图片7.jpeg\n",
      "内部排序为，即种类为： 19   相应概率为： 0.9999814033508301\n",
      "预测第 140 张图片116.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999997615814209\n",
      "预测第 141 张图片140.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9971265196800232\n",
      "预测第 142 张图片130.jpeg\n",
      "内部排序为，即种类为： 10   相应概率为： 0.9526998400688171\n",
      "预测第 143 张图片104.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9997738003730774\n",
      "预测第 144 张图片101.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9999549388885498\n",
      "预测第 145 张图片46.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9842303395271301\n",
      "预测第 146 张图片22.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 0.9991506338119507\n",
      "预测第 147 张图片60.jpeg\n",
      "内部排序为，即种类为： 14   相应概率为： 1.0\n",
      "prediction complete in 0m 1s\n"
     ]
    }
   ],
   "source": [
    "# directory_name = './pics3.0/valid/023boliguan_wan/'  # pics3.0\n",
    "directory_name = './pics4.0/train/015xiaobujinqian'   # pics4.0\n",
    "# directory_name = './pics5.0/train/019wanqian'   # pics5.0\n",
    "\n",
    "# directory_name = './lab_data/train/010shuChiQian.bmp'   # lab_data\n",
    "# directory_name = './imgsEnhance_5.0/train5.0/022chizhenqi' # imgsEnhance_5.0\n",
    "i=1\n",
    "start_time = time.time()\n",
    "for filename in os.listdir(r\"./\"+directory_name):\n",
    "    if(filename !=\".ipynb_checkpoints\"):\n",
    "        print('预测第',i,'张图片'+filename)\n",
    "#         print('预测第',i,'张图片')\n",
    "        i=i+1\n",
    "        predict(directory_name + \"/\" + filename)\n",
    "\n",
    "time_elapsed = time.time() - start_time\n",
    "print('prediction complete in {:.0f}m {:.0f}s'.format(time_elapsed // 60, time_elapsed % 60))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ded3722a",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "bfed557a",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
